//////////////////////////////
//	File:		OptionsState.h
//	Class:		SGP
//	Updated:	3/6/2012
//	Author:		Roc Myers
//////////////////////////////
#pragma once

#include "GameState.h"
#include "BitmapFont.h"

class OptionsState : public GameState
{
private:
	// SINGLETON Stuff
	OptionsState(void);
	OptionsState(const OptionsState&);
	OptionsState& operator=(const OptionsState&);
	~OptionsState(void);

	// Class Variables
	int		Selection;
	int		File;
	bool	Delete;
	float	sfxVol;
	float	bgmVol;
	float	musicTimer;
	float	pan;
	bool	isWindowed;

	// Asset IDs
	int	BGMID;
	int CursorID;
	int FontID;
	int BackgroundID;
	int SFXID;
	int declineID;
	int acceptID;
	int errorID;
	int moveID;

	// arcade input bools
	bool arcadeEnter;
	bool arcadeEscape;
	bool arcadeUp;
	bool arcadeDown;
	bool arcadeLeft;
	bool arcadeRight;
	bool arcadeBackspace;
	bool arcadeShift;
	bool arcadePlus;
	bool arcadeMinus;
	bool arcadeP;

	// Bitmap Font
	CBitmapFont Font;

	// SINGLETON
	static OptionsState* pInstance;

	void SaveSettings(const char* szFileName);

	bool ClearFile(int fileNumber);

public:
	static OptionsState* GetInstance(void);
	void DeleteInstance();

	// Inherited Functionality
	void Enter(void);	
	bool Input(void);	
	void Update(float fElapsedTime);	
	void Render(void);	
	void Exit(void);

	void ArcadeInput();
};

